home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 201-225 / disk_222 / plplot / src / source.zoo / plside3.c < prev    next >
C/C++ Source or Header  |  1989-05-15  |  3KB  |  105 lines

  1. /* This routine draws sides around the front of the 3d plot so that */
  2. /* it does not appear to float */
  3.  
  4. #include "plplot.h"
  5.  
  6. void plside3(x,y,z,nx,ny,ly,opt)
  7. int nx, ny, ly, opt;
  8. float *x, *y, *z;
  9. {
  10.     int i;
  11.     float cxx, cxy, cyx, cyy, cyz;
  12.     float xmin, ymin, zmin, xmax, ymax, zmax, zscale;
  13.     float tx, ty, ux, uy;
  14.  
  15.     gw3wc(&cxx,&cxy,&cyx,&cyy,&cyz);
  16.     gdom(&xmin,&xmax,&ymin,&ymax);
  17.     grange(&zscale,&zmin,&zmax);
  18.  
  19.     if (cxx >= 0.0 && cxy <= 0.0)  {
  20.         /* Get x, y coordinates of legs and plot */
  21.         if (opt != 1) {
  22.             for (i=0; i<nx; i++)  {
  23.                 tx = w3wcx(*(x+i),*y,zmin);
  24.                 ty = w3wcy(*(x+i),*y,zmin);
  25.                 ux = w3wcx(*(x+i),*y,*(z+i*ly));
  26.                 uy = w3wcy(*(x+i),*y,*(z+i*ly));
  27.                 pljoin(tx,ty,ux,uy);
  28.             }
  29.         }
  30.  
  31.         if (opt != 2) {
  32.             for (i=0; i<ny; i++)  {
  33.                 tx = w3wcx(*x,*(y+i),zmin);
  34.                 ty = w3wcy(*x,*(y+i),zmin);
  35.                 ux = w3wcx(*x,*(y+i),*(z+i));
  36.                 uy = w3wcy(*x,*(y+i),*(z+i));
  37.                 pljoin(tx,ty,ux,uy);
  38.             }
  39.         }
  40.     }
  41.     else if(cxx <= 0.0  && cxy <= 0.0)  {
  42.         if (opt != 1 )  {
  43.             for (i=0; i<nx; i++)  {
  44.                 tx = w3wcx(*(x+i),*(y+ny-1),zmin);
  45.                 ty = w3wcy(*(x+i),*(y+ny-1),zmin);
  46.                 ux = w3wcx(*(x+i),*(y+ny-1),*(z+i*ly+ny-1));
  47.                 uy = w3wcy(*(x+i),*(y+ny-1),*(z+i*ly+ny-1));
  48.                 pljoin(tx,ty,ux,uy);
  49.             }
  50.         }
  51.  
  52.         if (opt != 2)  {
  53.             for (i=0; i<ny; i++)  {
  54.                 tx = w3wcx(*x,*(y+i),zmin);
  55.                 ty = w3wcy(*x,*(y+i),zmin);
  56.                 ux = w3wcx(*x,*(y+i),*(z+i));
  57.                 uy = w3wcy(*x,*(y+i),*(z+i));
  58.                 pljoin(tx,ty,ux,uy);
  59.             }
  60.         }
  61.     }
  62.     else if(cxx <= 0.0  && cxy >= 0.0)  {
  63.         if (opt != 1)  {
  64.             for (i=0; i<nx; i++)  {
  65.                 tx = w3wcx(*(x+i),*(y+ny-1),zmin);
  66.                 ty = w3wcy(*(x+i),*(y+ny-1),zmin);
  67.                 ux = w3wcx(*(x+i),*(y+ny-1),*(z+i*ly+ny-1));
  68.                 uy = w3wcy(*(x+i),*(y+ny-1),*(z+i*ly+ny-1));
  69.                 pljoin(tx,ty,ux,uy);
  70.             }
  71.         }
  72.  
  73.         if (opt != 2)  {
  74.             for (i=0; i<ny; i++)  {
  75.                 tx = w3wcx(*(x+nx-1),*(y+i),zmin);
  76.                 ty = w3wcy(*(x+nx-1),*(y+i),zmin);
  77.                 ux = w3wcx(*(x+nx-1),*(y+i),*(z+(nx-1)*ly+i));
  78.                 uy = w3wcy(*(x+nx-1),*(y+i),*(z+(nx-1)*ly+i));
  79.                 pljoin(tx,ty,ux,uy);
  80.             }
  81.         }
  82.     }
  83.     else if(cxx >= 0.0  && cxy >= 0.0)  {
  84.         if (opt != 1)  {
  85.             for (i=0; i<nx; i++)  {
  86.                 tx = w3wcx(*(x+i),*y,zmin);
  87.                 ty = w3wcy(*(x+i),*y,zmin);
  88.                 ux = w3wcx(*(x+i),*y,*(z+i*ly));
  89.                 uy = w3wcy(*(x+i),*y,*(z+i*ly));
  90.                 pljoin(tx,ty,ux,uy);
  91.             }
  92.         }
  93.  
  94.         if (opt != 2)  {
  95.             for (i=0; i<ny; i++)  {
  96.                 tx = w3wcx(*(x+nx-1),*(y+i),zmin);
  97.                 ty = w3wcy(*(x+nx-1),*(y+i),zmin);
  98.                 ux = w3wcx(*(x+nx-1),*(y+i),*(z+(nx-1)*ly+i));
  99.                 uy = w3wcy(*(x+nx-1),*(y+i),*(z+(nx-1)*ly+i));
  100.                 pljoin(tx,ty,ux,uy);
  101.             }
  102.         }
  103.     }
  104. }
  105.